package com.briup.day05;

import java.util.Arrays;

/**
 * @author lining
 * @date 2024/1/12 14:08
 */
public class Test5 {
    /**
     * 值传递
     *   基本数据类型数值传递
     *   引用类型 地址值传递 形参arr 实参arr 都指向一个数组对象
     * @param arr
     */
    public static void method(int[][] arr){
        //arr arr2 都是一个对象
        arr[0][1] = 1;
    }
    public static void init(){
        char[][] chars = {{'A'}
                          ,{'A','B'},
                           {'A','B','C'}};
        for (int i = 0; i < chars.length; i++) {
            System.out.println(Arrays.toString(chars[i]));
        }
    }
    //创建杨辉三角并输出
    public static void method3(int line){
        //1.创建一个二维数组保存图案信息
        int[][] arr = new int[line][];
        //2.根据每层一维数组的长度，生成对应元素
        for (int i = 0; i < arr.length; i++) {// 0 1 2 3 4
            arr[i] = new int[i + 1]; // 1 2 3 4
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                //获取每个元素进行赋值
                if(j == 0 || i == j ){//=1
                    arr[i][j] = 1;
                }else { // 6= 3+3
                    arr[i][j]=arr[i-1][j]+ arr[i-1][j-1];
                }
            }
        }
        //打印操作
        for (int i = 0; i < arr.length; i++) {
            System.out.println(Arrays.toString(arr[i]));
        }
    }

    public static void main(String[] args) {
        int[][] arr2 = new int[3][4];
        arr2[0][0] = 1;
        method(arr2); //传递是什么arr2变量保存的地址值
        //System.out.println(arr2);//打印一个地址值
        //获取第一行第二个元素
        //System.out.println(arr2[0][1]); //1
        //init();
        method3(5);
    }

}
